package ig.ejb.metrica.da.session;

//import ig.ejb.metrica.da.AccionesposicionesLocal;
import ig.ejb.metrica.da.util.AccionesposicionesDTO;
import ig.ejb.metrica.da.util.IComun;
import java.sql.Timestamp;
import java.util.Collection;
import javax.ejb.*;

/**
 * This is the bean class for the AccionesPosicionesSBBean enterprise bean.
 * Created 2/08/2006 11:38:51 AM
 * @author jsanchez
 */
public class AccionesPosicionesSBBean implements SessionBean, AccionesPosicionesSBRemoteBusiness, AccionesPosicionesSBLocalBusiness {
    private SessionContext context;
    
    // <editor-fold defaultstate="collapsed" desc="EJB infrastructure methods. Click the + sign on the left to edit the code.">
    // TODO Add code to acquire and use other enterprise resources (DataSource, JMS, enterprise bean, Web services)
    // TODO Add business methods or web service operations
    /**
     * @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
     */
    public void setSessionContext(SessionContext aContext) {
        context = aContext;
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbActivate()
     */
    public void ejbActivate() {
        
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbPassivate()
     */
    public void ejbPassivate() {
        
    }
    
    /**
     * @see javax.ejb.SessionBean#ejbRemove()
     */
    public void ejbRemove() {
        
    }
    // </editor-fold>
    
    /**
     * See section 7.10.3 of the EJB 2.0 specification
     * See section 7.11.3 of the EJB 2.1 specification
     */
    public void ejbCreate() {
        // TODO implement ejbCreate if necessary, acquire resources
        // This method has access to the JNDI context so resource aquisition
        // spanning all methods can be performed here such as home interfaces
        // and data sources.
    }
    
    
    
    // Add business logic below. (Right-click in editor and choose
    // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
    public Object findByObject(Object ... obj) throws java.lang.Exception {
        //TODO implement findByObject
//        if(obj==ig.ejb.metrica.da.util.IComun.NULL || obj.length==0 || obj[0].equals(ig.ejb.metrica.da.util.IComun.ALL)){
//            return this.lookupAccionesposicionesBean().findAll();
//        }else if(obj[0].equals(IComun.Id)){
//            return this.lookupAccionesposicionesBean().findById((Integer) obj[1]);
//        }else if(obj[0].equals(IComun.FechaCorte)){
//            return this.lookupAccionesposicionesBean().findByFechaCorte((Timestamp) obj[1]);
//        }
        return null;
    }

    /**
     *Elimina uno o mas registros dependiendo de los objeto enviado
     */
    public void removeByObject(Object ... obj) throws java.lang.Exception {
        //TODO implement removeByObject
//        if(obj==ig.ejb.metrica.da.util.IComun.NULL || obj.length==0){
//            throw new Exception("No se eliminaron Objetos:"+this.getClass().getName());
//        }else if(obj[0] instanceof String){
//            if(obj[0].equals(IComun.Id)){
//                this.lookupAccionesposicionesBean().findByPrimaryKey((Integer) obj[1]).remove();
//            }else if(obj[0].equals(IComun.FechaCorte)){
//                Collection c=this.lookupAccionesposicionesBean().findByFechaCorte((java.sql.Timestamp) obj[1]);
//                for (Object elem : c) { 
////                    ((AccionesposicionesLocal)elem).remove();
//                }
//            }
//        }else if(obj[0] instanceof Collection){
//            for (Object elem : (Collection)obj[0]) { 
//                this.lookupAccionesposicionesBean().findByPrimaryKey(((AccionesposicionesDTO)elem).getId()).remove();
//            }
//        }
    }

    public void createNewObject(Object ... obj) throws java.lang.Exception {
        if(obj==ig.ejb.metrica.da.util.IComun.NULL || obj.length==0){
            throw new Exception("No se crearon Objetos:"+this.getClass().getName());
        }else if(obj[0] instanceof Collection){
            for (Object elem : (Collection)obj[0]) {                
//                this.lookupAccionesposicionesBean().create(
//                        ((AccionesposicionesDTO)elem).getId(),
//                        ((AccionesposicionesDTO)elem).getFechaCorte(),
//                        ((AccionesposicionesDTO)elem).getUnidades(),
//                        ((AccionesposicionesDTO)elem).getBursatil(),
//                        ((AccionesposicionesDTO)elem).getNombreAccion(),
//                        ((AccionesposicionesDTO)elem).getNombreProducto(),
//                        ((AccionesposicionesDTO)elem).getNombreNegocio()
//                        );
            }
        }else if(obj[0] instanceof AccionesposicionesDTO){
//            this.lookupAccionesposicionesBean().create(
//                        ((AccionesposicionesDTO)obj[0]).getId(),
//                        ((AccionesposicionesDTO)obj[0]).getFechaCorte(),
//                        ((AccionesposicionesDTO)obj[0]).getUnidades(),
//                        ((AccionesposicionesDTO)obj[0]).getBursatil(),
//                        ((AccionesposicionesDTO)obj[0]).getNombreAccion(),
//                        ((AccionesposicionesDTO)obj[0]).getNombreProducto(),
//                        ((AccionesposicionesDTO)obj[0]).getNombreNegocio()
//                    );
        }
    }

//    private ig.ejb.metrica.da.AccionesposicionesLocalHome lookupAccionesposicionesBean() {
//        try {
//            javax.naming.Context c = new javax.naming.InitialContext();
//            ig.ejb.metrica.da.AccionesposicionesLocalHome rv = (ig.ejb.metrica.da.AccionesposicionesLocalHome) c.lookup("java:comp/env/ejb/AccionesposicionesBean");
//            return rv;
//        }
//        catch(javax.naming.NamingException ne) {
//            java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
//            throw new RuntimeException(ne);
//        }
//    }
    
    
}
